package com.teamin.mapper;

import com.teamin.entity.LabelEntity;
import com.teamin.entity.LabelTaskEntity;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface LabelMapper {

    /**
     * 删除标签
     * @param labelId
     * @return
     */
    int deleteByPrimaryKey(@Param("labelId")Long labelId);

    /**
     * 删除标签
     * @param labelId
     * @return
     */
    int deleteLabelByTask(@Param("labelId")Long labelId);

    /**
     * 添加一个标签
     * @param record
     * @return
     */
    int insert(LabelEntity record);

    /**
     * 查询标签
     * @param labelId
     * @return
     */
    LabelEntity selectByPrimaryKey(@Param("labelId")Long labelId);

    /**
     * 圈子中是否存在此标签名的标签
     * @param circleId
     * @return
     */
    Boolean existCircleLabelName(@Param("circleId")Long circleId,@Param("labelName")String labelName);

    /**
     * 圈子中是否存在此标签名的标签
     * @param circleId
     * @return
     */
    Boolean existCircleLabel(@Param("circleId")Long circleId,@Param("labelId")Long labelId);

    /**
     * 查询圈子下的标签
     * @param circleId
     * @return
     */
    List<LabelEntity> selectByCircle(@Param("circleId") Long circleId,@Param("labelNameFilter") String labelNameFilter);

    /**
     * 更新标签
     * @return
     */
    int updateByPrimaryKeySelective(LabelEntity labelEntity);

    /**
     * 添加标签到任务
     * @return
     */
    int insertToTask(LabelTaskEntity labelTaskEntity);

    /**
     * 删除任务标签
     * @return
     */
    int deleteTaskLabel(@Param("taskId") Long taskId,@Param("labelId") Long labelId);

    /**
     * 是否存在任务标签
     * @return
     */
    Boolean existTaskLabel(@Param("taskId") Long taskId,@Param("labelId") Long labelId);

}